Page({
  data: {
    petinfo: [
      // {"avatar": "/images/cat1.png","name": "火火","age": "六个月","heavy": "5kg","infoList": ['活泼', '可爱', '粘人']},
      // {"avatar": "/images/cat1.png","name": "tom","age": "一个月","heavy": "2kg","infoList": ['可爱', '粘人']},
      // {"avatar": "/images/cat1.png","name": "小白","age": "三个月","heavy": "4kg","infoList": ['活泼', '可爱']},
  ],
    tasks: [],
    login: false,
    lastDatasetStr: null,
    checkTimer: null,
    currentDate: "" // 存储当天日期（YYYY-MM-DD格式）
  },

  // 格式化日期为YYYY-MM-DD
  formatDate(date) {
    const targetDate = new Date(date);
    const year = targetDate.getFullYear();
    const month = (targetDate.getMonth() + 1).toString().padStart(2, '0');
    const day = targetDate.getDate().toString().padStart(2, '0');
    return `${year}-${month}-${day}`;
  },

  // 初始化默认数据集（当天的空任务列表）
  getDefaultDataset() {
    return {
      date: this.data.currentDate, // 关联当天日期
      remindListId: [{"tit":"请添加提醒"}] // 初始为空，用户可添加当天任务
    };
  },

  // 加载并更新当天数据
  loadStorageData() {
    // 1. 获取当天日期
    const today = this.formatDate(new Date());
    this.setData({ currentDate: today });

    // 2. 读取本地存储
    let dataset = wx.getStorageSync('dataset');

    // 3. 处理空数据：初始化当天的默认数据
    if (!dataset || !dataset.date) {
      dataset = this.getDefaultDataset();
      wx.setStorageSync('dataset', dataset);
    }

    // 4. 如果存储的不是当天数据，说明跨天了，需要重新初始化
    if (dataset.date !== today) {
      dataset = this.getDefaultDataset();
      wx.setStorageSync('dataset', dataset);
    }

    // 5. 数据有变化才更新页面
    const currentDatasetStr = JSON.stringify(dataset);
    if (currentDatasetStr !== this.data.lastDatasetStr) {
      this.setData({
        tasks: dataset.remindListId || [],
        lastDatasetStr: currentDatasetStr
      });
    }
  },

  // 防抖检查存储变化
  debounceCheckStorage() {
    if (this.checkTimer) {
      clearTimeout(this.checkTimer);
    }
    this.checkTimer = setTimeout(() => {
      this.loadStorageData();
    }, 200);
  },

  // 获取宠物信息的接口请求
  async fetchPetInfo(openid) {
    // // 使用flyio发送请求，获取用户对应的宠物信息
    // getApp().flyio.get('/api/petinfo', {
    //   openid: openid
    // }).then(res => {
    //   if (res.data && res.data.success && res.data.data) {
    //     // 更新宠物信息
    //     this.setData({
    //       petinfo: res.data.data
    //     });
    //   }
    // }).catch(err => {
    //   console.error('获取宠物信息失败', err);
    //   // 失败时保持默认数据
    // });
    let res = await getApp().db.collection('pet_data').where({
        openid
    }).get()
    console.log(res);
    this.setData({
      petinfo:res.data
    })
  },

  handelAdd() {
    this.setData({ login: true });
  },

  handelRecord() {
    wx.switchTab({ url: '/pages/document/index' });
  },

  /**
   * 生命周期函数
   */
  onLoad() {
    // 检查用户登录状态
    const userinfo = wx.getStorageSync('userinfo');
    
    if (!userinfo || !userinfo.openid) {
      // 未登录，跳转到登录页面
      wx.switchTab({ 
        url: '/pages/mine/index',
        success: () => {
          // 可以在这里添加提示，告知用户需要登录
          wx.showToast({
            title: '请先登录',
            icon: 'none',
            duration: 2000
          });
        }
      });
      return;
    }
    
    // 已登录，标记登录状态
    this.setData({ login: true });
    
    // 获取用户对应的宠物信息
    this.fetchPetInfo(userinfo.openid);
    
    // 首屏加载当天数据
    this.loadStorageData();
    
    // 定时检查更新
    this.pollingTimer = setInterval(() => {
      this.debounceCheckStorage();
    }, 1000);
  },

  onShow() {
    // 从其他页面返回时，检查登录状态
    const userinfo = wx.getStorageSync('userinfo');
    
    if (!userinfo || !userinfo.openid) {
      this.setData({ login: false });
      return;
    }
    
    // 已登录状态下刷新数据
    this.setData({ login: true });
    this.loadStorageData();
    // 可以在这里决定是否重新请求宠物信息
    // this.fetchPetInfo(userinfo.openid);
  },

  onUnload() {
    // 清理定时器
    if (this.pollingTimer) {
      clearInterval(this.pollingTimer);
    }
    if (this.checkTimer) {
      clearTimeout(this.checkTimer);
    }
  },

  // 其他生命周期函数保持不变
  onReady() {},
  onHide() {},
  onPullDownRefresh() {},
  onReachBottom() {},
  onShareAppMessage() {}
})
